<?php

 class __kernel_error {
 
 	public $ver = "0.01";
	public $urls = array(
		"default"    => "404",
		"404"        => "e404"
	);
 	
 	static $errors_function = array();
 	static protected $template = "404.html";
 	
 	/**
 	 * Функция отобразит ошибку 404 
 	 * 
 	 * @param bool $escape указывает можно ли пропустить перехват ошибок другими модулями или нет, по умолчанию false
 	 * @param string $what возможность указать причину отказа, к примеру "access" скажет что причина отказа - недостаток прав доступа
 	 * @return html
 	 */
	static function e404($escape = false, $what = false) {
		if($what !== false) drv(DISP)->assign('error_404_reason', $what);
	        
	    if(is_array(self::$errors_function['404']) && $escape == false) {
	    	$si = &__kernel_start::si(self::$errors_function['404']['class']);
	    	
	        if($si == false) {
	        	
	        	return drv(DISP)->fetch(self::$template);
	        
	        } else {
	        	
	        	$funct = &self::$errors_function['404']['funct'];
	            return $si->$funct(self::$errors_function['404']['args']);
	            
	        }
	        
	    } else {
	    	
			return drv(DISP)->fetch(self::$template);
			
	    }
	        
	}
	
 }

?>
